home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b2.d64 / newshop < prev    next >
Text File  |  2007-02-28  |  3KB  |  117 lines

  1. 0010 //UNCLE HANNIBAL'S NEW SHOP//
  2. 0020 //WRITTEN BY CHRIS BORGE//
  3. 0030 //FILE VERSION: NOV. 1981//
  4. 0040 //
  5. 0050 DIM NAME$ OF 30, ADRESS$ OF 20
  6. 0060 DIM TOWN$ OF 20, CODE$ OF 10
  7. 0070 DIM ARTICLE$(10) OF 20, PRICE(10)
  8. 0080 DIM TEXT$(10) OF 20, AMOUNT(10)
  9. 0090 DIM SPACES$ OF 39, QUANTITY(10)
  10. 0100 //*
  11. 0110 INITIALIZE
  12. 0120 REPEAT 
  13. 0130 CUSTOMER
  14. 0140 GETORDER
  15. 0150 IF LINE<>0 THEN WRITEBILL
  16. 0160 INPUT "TYPE RETURN ": CODE$
  17. 0170 UNTIL THECOWSCOMEIN
  18. 0180 //*
  19. 0190 PROC INITIALIZE 
  20. 0200 PRINT CHR$(147) //CLEAR SCREEN
  21. 0210 THECOWSCOMEIN:=FALSE
  22. 0220 I:=0; SPACES$(1:39):=""
  23. 0230 OPEN FILE 2,"OFFER",READ
  24. 0240 REPEAT 
  25. 0250 I:=I+1
  26. 0260 READ FILE 2: ARTICLE$(I),PRICE(I)
  27. 0270 UNTIL EOF(2) //END-OF-FILE//
  28. 0280 MAX:=I
  29. 0290 CLOSE
  30. 0300 ENDPROC INITIALIZE
  31. 0310 //
  32. 0320 PROC CUSTOMER 
  33. 0330 TOTAL:=0; LINE:=0
  34. 0340 //
  35. 0350 //STUD
  36. 0360 //
  37. 0370 ENDPROC CUSTOMER
  38. 0380 //
  39. 0390 PROC GETORDER 
  40. 0400 MENU
  41. 0410 TAKEIN("ARTNO")
  42. 0420 WHILE NOT FINISHED DO
  43. 0430 LINE:=LINE+1
  44. 0440 TAKEIN("QUANTITY")
  45. 0450 INVOICELINE
  46. 0460 TAKEIN("ARTNO")
  47. 0470 ENDWHILE 
  48. 0480 ENDPROC GETORDER
  49. 0490 //
  50. 0500 PROC INVOICELINE 
  51. 0510 TEXT$(LINE):=ARTICLE$(ARTNO)
  52. 0520 AMOUNT(LINE):=PRICE(ARTNO)*QUANTITY(LINE)
  53. 0530 TOTAL:+AMOUNT(LINE)
  54. 0540 ENDPROC INVOICELINE
  55. 0550 //
  56. 0560 PROC WRITEBILL 
  57. 0570 PRINT CHR$(147) //CLEAR SCREEN
  58. 0580 SCREEN(4,1)
  59. 0590 PRINT NAME$
  60. 0600 PRINT ADRESS$
  61. 0610 PRINT TOWN$,"á",CODE$
  62. 0620 PRINT 
  63. 0630 PRINT "QUANT.",TAB(10),"ARTICLE",TAB(30),"AMOUNT"
  64. 0640 PRINT "----------------------------------------"
  65. 0650 FOR I:=1 TO LINE DO
  66. 0660 PRINT TAB(2),QUANTITY(I),
  67. 0670 PRINT TAB(9),TEXT$(I),
  68. 0680 PRINT TAB(32-LGTH(AMOUNT(I))),AMOUNT(I)
  69. 0690 ENDFOR I
  70. 0700 PRINT TAB(28),"--------"
  71. 0710 PRINT TAB(22),"TOTAL:",TAB(32-LGTH(TOTAL)),TOTAL
  72. 0720 ENDPROC WRITEBILL
  73. 0730 //
  74. 0740 PROC TAKEIN(KINDOF$) 
  75. 0750 WINDOW(10,15)
  76. 0760 CASE KINDOF$ OF
  77. 0770 WHEN "ARTNO"
  78. 0780 REPEAT 
  79. 0790 WINDOW(10,15)
  80. 0800 INPUT "> ": ARTNO
  81. 0810 OK:=(0<=ARTNO AND ARTNO<=MAX)
  82. 0820 UNTIL OK
  83. 0830 FINISHED:=(ARTNO=0)
  84. 0840 WHEN "QUANTITY"
  85. 0850 REPEAT 
  86. 0860 SCREEN(ARTNO,20)
  87. 0870 INPUT QUANT
  88. 0880 UNTIL 0<QUANT AND INT(QUANT)=QUANT
  89. 0890 QUANTITY(LINE):=QUANT
  90. 0900 ENDCASE 
  91. 0910 ENDPROC TAKEIN
  92. 0920 //
  93. 0930 PROC MENU 
  94. 0940 PRINT CHR$(147)
  95. 0950 FOR I:=1 TO MAX DO
  96. 0960 PRINT I,". ",ARTICLE$(I)
  97. 0970 ENDFOR I
  98. 0980 PRINT "0. STOP"
  99. 0990 ENDPROC MENU
  100. 1000 //
  101. 1010 PROC WINDOW(X,Y) 
  102. 1020 SCREEN(X,1)
  103. 1030 FOR LN:=1 TO Y-X+1 DO PRINT SPACES$
  104. 1040 SCREEN(X,1)
  105. 1050 ENDPROC WINDOW
  106. 1060 //
  107. 1070 PROC SCREEN(X,Y) 
  108. 1080 PRINT CHR$(19),
  109. 1090 FOR LN:=1 TO X DO PRINT CHR$(17),
  110. 1100 FOR CH:=1 TO Y DO PRINT CHR$(29),
  111. 1110 ENDPROC SCREEN
  112. 1120 //
  113. 1130 FUNC LGTH(X) 
  114. 1140 RETURN (X>=1)+(X>=10)+(X>=100)+(X>=1000)
  115. 1150 ENDFUNC LGTH
  116. 1160 //
  117.